package beans;

import java.util.ArrayList;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;

import modelo.Cursoperiodogrupo;
import modelo.Evaluacion;
import modelo.Matricula;
import modelo.Profesor;

import org.primefaces.context.RequestContext;
import org.primefaces.event.SelectEvent;
import org.primefaces.event.UnselectEvent;

@ManagedBean
@RequestScoped
public class CursoPeriodoGrupoBean {

	private Profesor profesor;
	private Cursoperiodogrupo cpg;
	private List<Matricula> matriculas;
	private Matricula matriculaSelected;

	public boolean verificarSesion() {
		boolean estado = false;
		profesor = (Profesor) FacesContext.getCurrentInstance()
				.getExternalContext().getSessionMap().get("profesor");
		if (profesor != null) {
			cpg = (Cursoperiodogrupo) FacesContext.getCurrentInstance()
					.getExternalContext().getSessionMap().get("cpgSelec");
			llenarDatos();
			estado = true;
		}
		return estado;
	}

	public void llenarDatos() {
		matriculas = new ArrayList<Matricula>();
		for (Object mat : cpg.getMatriculas()) {
			Matricula matx = (Matricula) mat;
			matriculas.add(matx);
		}
	}

	public void iniciarConfiguracion() {
		RequestContext.getCurrentInstance().openDialog("configuracionExamen");
	}

	public void onConfiguracionEscogida(SelectEvent event) {
		Evaluacion eva = (Evaluacion) event.getObject();
		FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO,
				"Car Selected", "Id:" + eva.getEvaluacionId());
		FacesContext.getCurrentInstance().addMessage(null, message);
	}

	public void onRowSelectMatricula(SelectEvent event) {
		FacesMessage msg = new FacesMessage("Car Selected",
				((Matricula) event.getObject()).getIdMatricula());
		FacesContext.getCurrentInstance().addMessage(null, msg);
	}

	public void onRowUnselectMatricula(UnselectEvent event) {
		FacesMessage msg = new FacesMessage("Car Unselected",
				((Matricula) event.getObject()).getIdMatricula());
		FacesContext.getCurrentInstance().addMessage(null, msg);
	}

	public Matricula getMatriculaSelected() {
		return matriculaSelected;
	}

	public void setMatriculaSelected(Matricula matriculaSelected) {
		this.matriculaSelected = matriculaSelected;
	}

	public List<Matricula> getMatriculas() {
		return matriculas;
	}

	public void setMatriculas(List<Matricula> matriculas) {
		this.matriculas = matriculas;
	}

	public Profesor getProfesor() {
		return profesor;
	}

	public void setProfesor(Profesor profesor) {
		this.profesor = profesor;
	}

	public Cursoperiodogrupo getCpg() {
		return cpg;
	}

	public void setCpg(Cursoperiodogrupo cpg) {
		this.cpg = cpg;
	}

}
